package com.ruoyi.wb.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.wb.domain.WbInform;
import com.ruoyi.wb.mapper.WbInformMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.wb.mapper.WbPlanContentMapper;
import com.ruoyi.wb.domain.WbPlanContent;
import com.ruoyi.wb.service.IWbPlanContentService;
import org.springframework.transaction.annotation.Transactional;

/**
 * 维保计划内容Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-10-14
 */
@Service
public class WbPlanContentServiceImpl implements IWbPlanContentService 
{
    @Autowired
    private WbPlanContentMapper wbPlanContentMapper;

    @Autowired
    private WbInformMapper wbInformMapper;

    /**
     * 查询维保计划内容
     * 
     * @param id 维保计划内容主键
     * @return 维保计划内容
     */
    @Override
    public WbPlanContent selectWbPlanContentById(Long id)
    {
        return wbPlanContentMapper.selectWbPlanContentById(id);
    }

    /**
     * 查询维保计划内容列表
     * 
     * @param wbPlanContent 维保计划内容
     * @return 维保计划内容
     */
    @Override
    public List<WbPlanContent> selectWbPlanContentList(WbPlanContent wbPlanContent)
    {
        return wbPlanContentMapper.selectWbPlanContentList(wbPlanContent);
    }

    /**
     * 新增维保计划内容
     * 
     * @param wbPlanContent 维保计划内容
     * @return 结果
     */
    @Override
    public int insertWbPlanContent(WbPlanContent wbPlanContent)
    {
        wbPlanContent.setCreateTime(DateUtils.getNowDate());
        return wbPlanContentMapper.insertWbPlanContent(wbPlanContent);
    }

    /**
     * 修改维保计划内容
     * 
     * @param wbPlanContent 维保计划内容
     * @return 结果
     */
    @Override
    public int updateWbPlanContent(WbPlanContent wbPlanContent)
    {
        wbPlanContent.setUpdateTime(DateUtils.getNowDate());
        return wbPlanContentMapper.updateWbPlanContent(wbPlanContent);
    }

    /**
     * 批量删除维保计划内容
     * 
     * @param ids 需要删除的维保计划内容主键
     * @return 结果
     */
    @Override
    public int deleteWbPlanContentByIds(Long[] ids)
    {
        return wbPlanContentMapper.deleteWbPlanContentByIds(ids);
    }

    /**
     * 删除维保计划内容信息
     * 
     * @param id 维保计划内容主键
     * @return 结果
     */
    @Override
    public int deleteWbPlanContentById(Long id)
    {
        return wbPlanContentMapper.deleteWbPlanContentById(id);
    }

    /**
     * 合格或不合格
     *
     * @param wbPlanContent
     * @return
     */
    @Transactional(rollbackFor = RuntimeException.class)
    @Override
    public int qualifiedOrDisqualification(WbPlanContent wbPlanContent) {
        if (wbPlanContent.getResult() != null && wbPlanContent.getResult() == 1) {
            wbInformMapper.saveInform(wbPlanContent.getId());
        }
        return updateWbPlanContent(wbPlanContent);
    }
}
